<!--
 * @Author: wang_sheshe
 * @Date: 2021-01-15 11:02:13
 * @LastEditTime: 2021-01-27 14:08:24
 * @Description: 图片选择-区分拍照还是从相册选择
-->
<template>
  <van-action-sheet
  v-model="show"
  :actions="actions"
  cancel-text="取消"
  close-on-click-action
  @cancel="onCancel"
  @select="onSelect"
  />
</template>

<script>
const DestinationType =  {
	DATA_URL: 0, // Return base64 encoded string
	FILE_URI: 1, // Return file uri (content://media/external/images/media/2 for Android)
	NATIVE_URI: 2 // Return native uri (eg. asset-library://... for iOS)
}
export default {
  name: 'Picture',
  data () {
    return {
      show: false,
      // 下拉数据
      actions:[
      { name: '拍照',url:"",type:"addPic"},
      { name: '从相册选择',url:"",type:"selectPic"},
      ]
    }
  },
  methods: {
     /**
     * @description: 选择拍照或是相册选择类型
     * @param {*}val 拍照或是相册选择
     */ 
    onSelect(val){
      let self=this;
      if(val.name=="拍照"){
        this.fromCamera(1, function(imgUrl) {
          // 图片URL赋值
           val["url"]=imgUrl
           self.$emit("cancel",val)
		   	});
      }else{
        // 传递选择的类型
        this.$emit("cancel",val);
      }
    
    },
     /**
     * @description: 取消
     */ 
    onCancel(){
      this.show=false;
      this.$emit("cancel","close");
    },
    /**
	 * @description:拍照
	 * @param source 相机类型
	 * @param fn 自己需要添加的方法
	 */
   fromCamera(source, success) {
		var newFileName = (new Date().getTime()).toString() + ".jpg";
		navigator.camera.getPicture(function(imageURI) {
			success(imageURI);
		}, function(error) {
		}, {
			quality: 80, // 图片质量
			destinationType: DestinationType.DATA_URL, //DATA_URL,  FILE_URI
			sourceType: source,
			// encodingType : Camera.EncodingType.JPEG,
			targetWidth: 800, //生成的图片大小 单位像素，选择图片的时候一定要制定这个值，否则
			targetHeight: 600
		});
	},
   },
}
</script>
<style scoped>

</style>
